home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_1 / dframe37.zip / DFRAME.DOC < prev    next >
Text File  |  1992-09-22  |  62KB  |  1,155 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                D O O R F R A M E
  17.                                   Version 3.7
  18.  
  19.                         A BBS Doors Development Library
  20.  
  21.                             Copyright (c) 1990-1992
  22.                                 by Ted Freeman
  23.                              All rights reserved.
  24.  
  25.  
  26.                                Support board is:
  27.  
  28.                                MicroNet PCBoard
  29.                           615-626-1620 (Hayes ULTRA)
  30.  
  31.  
  32.  
  33. DOORFRAME v3.7 - Users Guide - Page i
  34.  
  35.  
  36.                                 C O N T E N T S
  37.                                =================
  38.  
  39.         Warranty ............................................ ii
  40.         Copyright notice .................................... ii
  41.         Distribution ........................................ ii
  42.         Description ......................................... ii
  43.         BOX.IT .............................................. 1
  44.         BACK.SPACE .......................................... 2
  45.         CLREOL .............................................. 2
  46.         CLRMOL .............................................. 2
  47.         CLRSOL .............................................. 2
  48.         CLRSCRN ............................................. 2
  49.         DE.LAY .............................................. 2
  50.         DETECT.ANSI ......................................... 2
  51.         DIS.PLAY ............................................ 3
  52.         ENTER ............................................... 4
  53.         EXISTS .............................................. 4
  54.         EXIT.DOOR ........................................... 4
  55.         IN.PUT .............................................. 4
  56.         INITIALIZE .......................................... 5
  57.         LINES ............................................... 5
  58.         MAKE.BLT ............................................ 5
  59.         MAKE.BLT.CURRENT .................................... 6
  60.         MORE ................................................ 6
  61.         MUSIC ............................................... 6
  62.         OUT.PUT ............................................. 6
  63.         SEND ................................................ 6
  64.         SHOW.BLT ............................................ 6
  65.         COLOR TABLE ......................................... 7
  66.         CONFIGURATION FILE FORMAT ........................... 8
  67.         PCBOARD.SYS VARIABLES ............................... 9
  68.         USERS.SYS VARIABLES ................................. 11
  69.         DOOR.SYS VARIABLES .................................. 12
  70.         USERINFO.DAT VARIABLES .............................. 14
  71.         DORINFOx.DEF VARIABLES .............................. 14
  72.         CALLINFO.BBS VARIABLES .............................. 15
  73.         SFDOORS.DAT VARIABLES ............................... 17
  74.         CHAIN.TXT VARIABLES ................................. 19
  75.         MISCELLANEOUS NOTES ................................. 20
  76.  
  77.  
  78. DOORFRAME v3.7 - Users Guide - Page ii
  79.  
  80.  
  81.                                    Warranty
  82.  
  83.     This product is provided "as is" without warranty of any kind. The entire
  84.     risk as to the results and  performance of the program is assumed by you.
  85.     Futhermore, the  author does  not warrant, guarantee, or  make any  other
  86.     representations regarding  the use of,  or the  results of the use of the
  87.     program,  and you  rely on the  program and  results  solely at  your own
  88.     risk.  The author  cannot and  will not accept  responsibility for system
  89.     damage, loss of profit, or any other special, consequential or incidental 
  90.     damages  resulting  from  the  use  or  inability  to  use this  product.
  91.  
  92.                                    Copyright
  93.  
  94.     DOORFRAME Copyright (c) 1990-92 by  Ted Freeman  is being distributed as
  95.     Shareware. Under this concept you may use the  SHAREWARE  (unregistered)
  96.     version for a reasonable period of  time for evaluation  after which you
  97.     must either register your copy or discontinue  usage.
  98.  
  99.  
  100.                                  Distribution
  101.  
  102.     You  are encouraged to distribute DOORFRAME provided that all files
  103.     contained in the archive are distributed in their original and
  104.     unmodified state.
  105.  
  106.                                   Description
  107.     
  108.     DOORFRAME is a subroutine library for developing online BBS Doors for
  109.     systems that are compatible with PCBOARD.SYS, USERS.SYS, DOOR.SYS,
  110.     CALLINFO.BBS, USERINFO.DAT, SFDOORS.DAT, GTUSER.DAT, TRIBBS.SYS, CHAIN.TXT
  111.     or DORINFOx.DEF for interfacing to the BBS.
  112.  
  113.     DoorFrame was written for QUICKBASIC (tm) 4.5 and is not recommended for
  114.     use with earlier versions of the compiler. DoorFrame also utilizes some of
  115.     the routines contained in Tom Hanlin's PBClone library. The COM routines
  116.     are handled by the QBSerial I/O library.
  117.  
  118.  
  119. DOORFRAME v3.7 - Users Guide - Page 1
  120.  
  121.  
  122.                               DOORFRAME ROUTINES
  123.                              ====================
  124.  
  125. ------------------------------------------------------------------------------
  126. NOTE: 
  127. Since the subroutines are DECLAREd in DFRAME.INC (you DID $INCLUDE: it didn't 
  128. you?) you should not use the CALL statement. Type the name of the subroutine 
  129. and list it's parameters (if any) without the enclosing parentheses.
  130. For example:
  131.  
  132.  DIS.PLAY MSG$, FG%, BG%, BLINK%, BELL%, XPOS%, YPOS%, NL%, CENTER%, CAPS% 
  133.  
  134. The FUNCTIONs still require the enclosing parentheses.
  135. ------------------------------------------------------------------------------
  136.  
  137. SUBROUTINE: 
  138. BOX.IT (SROW%,SCOL%,EROW%,ECOL%,BTYPE%,BFG%,BBG%,FFG%,FBG%,FCHAR%,SHADOW%,TITLE$,HFG%,HBG%)
  139. PARAMETERS: SROW%    - ROW the box is to start at. Valid numbers are 1 - 22.
  140.                        Accepts an INTEGER number or variable.
  141.             SCOL%    - COLUMN the box is to start at. Valid numbers are 1 - 79.
  142.                        Accepts an INTEGER number or variable.
  143.             EROW%    - ROW the box is to end at. Valid numbers are 2 - 23.
  144.                        Accepts an INTEGER number or variable.
  145.             ECOL%    - COLUMN the box is to end at. Valid numbers are 2 - 80.
  146.                        Accepts an INTEGER number or variable.
  147.             BTYPE%   - Type of border. Accepts an INTEGER number or variable.
  148.                          0 = No border (spaces all the way around).
  149.                          1 = Single line all the way around.
  150.                          2 = Double line all the way around.
  151.                          3 = Double line on sides, single on top and bottom.
  152.                          4 = Single line on sides, double on top and bottom.
  153.             BFG%     - Foreground color of the border. (See color table)
  154.                        Accepts an INTEGER number or variable.
  155.             BBG%     - Background color of the border. (See color table)
  156.                        Accepts an INTEGER number or variable.
  157.             FFG%     - Foreground color of the box fill characters.
  158.                        Accepts an INTEGER number or variable.
  159.             FBG%     - Background color of the box fill characters.
  160.                        Accepts an INTEGER number or variable.
  161.             FCHAR%   - ASCII number of the character to fill box with.
  162.                        EX: 32 = SPACE, 65 = A, 206 = ╬
  163.             SHADOW%  - 1 = Shadow, 0 = no Shadow. This will put a Shadow
  164.                        on the right and bottom edges of the box.
  165.             TITLE$   - Displays a title centered on the top border.
  166.                        Accepts a STRING variable or QUOTED TEXT.
  167.             HFG%     - Foreground color of TITLE$
  168.             HFG%     - Background color of TITLE$
  169.  
  170. DESCRIPTION: Draws a BOX with various style borders. The inside of the
  171.              BOX may be filled with any ASCII character you choose. The
  172.              upper left corner of the screen is ROW 1, COLUMN 1 and the
  173.              bottom right is ROW 23, COLUMN 80.
  174.  
  175.  
  176. DOORFRAME v3.7 - Users Guide - Page 2
  177.  
  178. SUBROUTINE: BACK.SPACE ROW%, COL%, NUM%
  179. PARAMETERS: ROW%, COL%, NUM%
  180. DESCRIPTION: Backspaces NUM% from the ROW% and COL% specified.
  181.  
  182.  
  183. SUBROUTINE: CLREOL
  184. PARAMETERS: XPOS%, YPOS%, BGC%
  185. DESCRIPTION: Clears from the specified row and column to the end of that
  186.              line. The line is cleared in whatever color is specified in
  187.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  188.  
  189. SUBROUTINE: CLRMOL XPOS%, YPOS%, LENGTH%, BGC%
  190. PARAMETERS: XPOS%, YPOS%, LENGTH%, BGC%
  191. DESCRIPTION: Clears from the specified row and column for the number of
  192.              columns given in LENGTH%. The line is cleared in whatever
  193.              color is specified in the BGC% parameter.
  194.              NOTE: Does not work in non-ANSI.
  195.  
  196. SUBROUTINE: CLRSOL XPOS%, YPOS%, BGC%
  197. PARAMETERS: XPOS%, YPOS%, BGC%
  198. DESCRIPTION: Clears from the specified row and column to the start of that
  199.              line. The line is cleared in whatever color is specified in
  200.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  201.  
  202. SUBROUTINE: CLRSCRN
  203. PARAMETERS: BGC%
  204. DESCRIPTION: Clears both the LOCAL (if ON) and REMOTE displays in the back-
  205.              ground color of your choice. Range is 0 - 7. ANSI only.
  206.  
  207. SUBROUTINE: DE.LAY (SEC%)
  208. PARAMETERS: SEC%, 1, 2, Etc.
  209. DESCRIPTION: Pauses your program for the number of seconds in SEC%. Accepts
  210.              INTEGER number or variable.
  211.  
  212.  
  213. SUBROUTINE: DETECT.ANSI
  214. PARAMETERS: None
  215. DESCRIPTION: This routine will determine if the remote system has ANSI
  216.              capability. If the remote system is ANSI compatible, the
  217.              GRAPHICS% variable will be set equal to -1 otherwise it is
  218.              set to 0. This routine does not control whether COLOR is used
  219.              or not, see the MODE% variable for that.
  220.  
  221.  
  222. DOORFRAME v3.7 - Users Guide - Page 3
  223.  
  224. SUBROUTINE: DIS.PLAY (MSG$,FG%,BG%,BLINK%,BELL%,XPOS%,YPOS%,NL%,CENTER%,CAPS%)
  225. PARAMETERS: MSG$     - Text to be printed in either variable or quoted form.
  226.                        Example: "Print this" or MSG$ = "Print this".
  227.             FG%      - Foreground color (0 - 15) Of the text. Can be in
  228.                        INTEGER number or INTEGER variable form. 
  229.                        Example: FG% = 1, 1, BLUE (See Color Table)
  230.             BG%      - Background color (0 - 7) of text otherwise same as FG%
  231.             BLINK%   - Enter 1 for blinking text or 0 for normal text.
  232.                        Accepts INTEGER number or INTEGER variable.
  233.             BELL%    - Enter 1 to sound a beep on the remote or 0 for no
  234.                        beep. Does not beep on the local computer.
  235.                        Accepts INTEGER number or INTEGER variable.
  236.             XPOS%    - Row number for cursor positioning. Valid numbers
  237.                        are 0 - 23 (status line is on 24 - 25). Enter 0 to
  238.                        disable. Accepts INTEGER number or variable.
  239.                        NOTE: XPOS% is ignored when GRAPHICS% = 0.
  240.             YPOS%    - Column number for cursor positioning. Valid numbers
  241.                        are 0 - 80. Enter 0 to disable. Accepts INTEGER number
  242.                        or INTEGER variable.
  243.                        NOTE: YPOS% is ignored when GRAPHICS% = 0.
  244.             NL%      - Enter 1 to send a CR/LF at the end of the line. Enter
  245.                        0 to position the cursor after the last character.
  246.                        Accepts INTEGER number or INTEGER variable.
  247.             CENTER%  - Enter 1 to center the line or 0 for no centering.
  248.             CAPS%    - Enter 1 to convert text to all uppercase.
  249.                        Enter -1 to convert text to all lowercase.
  250.                        Enter 0 for no case conversion.
  251.                        Accepts INTEGER number or INTEGER variable.
  252.  
  253. DESCRIPTION: Displays text to both the Local (if on) and Remote screens.
  254.              Accepts the full ASCII charcter set (0 - 255). Supports ANSI
  255.              color and cursor positioning (XPOS%, YPOS%). DoorFrame features
  256.              auto-ANSI detection and will display in graphics mode if it
  257.              senses ANSI capability on the remote end.
  258.  
  259. ENHANCEMENTS: There are some special symbols available to make text blink
  260.              in the middle of a line in any color you wish. For example:
  261.  
  262.              DIS.PLAY "This will %{Blink Yellow{", LWHITE, BLACK, 0, 0,......
  263.  
  264.              Note the {'s before and after Blink Yellow. They tell the routine
  265.              to display the text in between in yellow and blinks because 
  266.              of the % symbol. Without the % the text is displayed in yellow
  267.              but does not blink. The rest of the line is displayed in white
  268.              on black. The symbols and their corresponding colors are:
  269.                 ~ = Blue,  ` = Green,  @ = Cyan,  ^ = Red,  | = Magenta
  270.                 { = Yellow, and } = White 
  271.              Put a * in front of the first symbol to display in low intensity
  272.              colors. Ex: *}text} displays 'text' in low intensity white. And
  273.              %*}test} displays 'text' in low intensity white and blinks.
  274.              Please note that you must have called DETECT.ANSI before using
  275.              these symbols and the caller must be ANSI capable. Multiple codes
  276.              are allowed in one Dis.Play statement. See the included
  277.              DFDEMO.BAS file for examples on using this option.
  278.  
  279. DOORFRAME v3.7 - Users Guide - Page 4
  280.  
  281. SUBROUTINE: ENTER
  282. PARAMETERS: None
  283. DESCRIPTION: Outputs a "Press <ENTER> to Continue" prompt and waits for the
  284.              response. If the caller is in graphics mode, this is centered
  285.              on line 23. In non-graphics mode it is centered 2 lines below
  286.              the last line printed.
  287.  
  288. FUNCTION: EXISTS (FILENAME$ + CHR$(0))
  289. PARAMETERS: ASCIIZ Filename
  290. DESCRIPTION: Checks to see if a file exists on disk. The passed parameter
  291.              MUST be an ASCIIZ filename (FILENAME$ + CHR$(0)). The function
  292.              returns 0 if the file exists or -1 if it does not.
  293.              Example: IF EXISTS (MYFILE$ + CHR$(0)) = 0 THEN
  294.                          PRINT "The file is there!"
  295.                       ELSE
  296.                          PRINT "File not found."
  297.                       END IF
  298.  
  299. SUBROUTINE: EXIT.DOOR (YN$)
  300. PARAMETERS: YN$, "Y", "N", "G"
  301. DESCRIPTION: VERY IMPORTANT! Always call this subroutine as the last thing
  302.              your program does. EXIT.DOOR updates the system files with any
  303.              changes that have been made, closes the files, etc.
  304.              You can toggle this ON, "Y" or OFF, "N" when you call EXIT.DOOR.
  305.              If you wish to allow the caller to log off from your Door, call
  306.              EXIT.DOOR "G". When you use EXIT.DOOR "G", DoorFrame returns a
  307.              DOS Error Level of 1 for Wildcat! systems and 62 for all others.
  308.  
  309. SUBROUTINE: IN.PUT LENGTH%, WAITTIME&, IFG%, IBG%, AUTOCR%, Text$, X%, Y%, Show%
  310. PARAMETERS: LENGTH%   - Desired length of input. Accepts an INTEGER number
  311.                         or variable. 0 = any length.
  312.             WAITTIME& - Number of seconds to wait for input. If ENTER is not
  313.                         pressed before this times out, control is passed back
  314.                         to the calling routine and RESPONSE$ will contain "-1"
  315.             IFG%      - Foreground color of Text$ and the response (INTEGER).
  316.             IBG%      - Background color of Text$ and the response (INTEGER).
  317.             AUTOCR%   - 1 = Automatic CR, 0 = Wait for ENTER to be pressed.
  318.             Text$     - Text to display (if any). Use "" for no display.
  319.             X%        - X coordinate to display text. 0 = current coordinate.
  320.             Y%        - Y coordinate to display text. 0 = current coordinate.
  321.             Show%     - 0 = Don't display response, 1 = Display response.
  322.  
  323. DESCRIPTION: Gets a response from the caller which is returned in the variable
  324.              RESPONSE$. Passes ASCII characters in the range 32 - 127 and
  325.              ignores all others unless Hi.Ascii% = 1, in which case it accepts
  326.              ASCII 32 - 255. IN.PUT also allows you to use HOT KEYS! If you are
  327.              prompting for a Y/N you could do something like:
  328.               IN.PUT 1, 180, 12, 0, 1, "Is everything correct? (y/n) ", 1, 1, 0
  329.               IF UCASE$(RESPONSE$) = "Y" THEN      Etc., Etc.
  330.              As soon as the caller hit Y or N, the subroutine terminates
  331.              without his having to hit ENTER (however IN.PUT always returns
  332.              when ENTER is pressed). The response would not be displayed.
  333.              The IN.PUT can also be used as a timed routine. In the example
  334.              above, The routine would wait for 180 seconds. if it does not
  335.              receive a keypress within that time, it returns to the calling
  336.              routine and RESPONSE$ would contain a "-1".
  337.              IN.PUT features word-wrap ability in both forward typing and
  338.              while backspacing.
  339.  
  340. DOORFRAME v3.7 - Users Guide - Page 5
  341.  
  342. SUBROUTINE: INITIALIZE
  343. PARAMETERS: None
  344. DESCRIPTION: VERY IMPORTANT! You MUST make a call to INITIALIZE before your
  345.              code does anything. This subroutine opens the system files and
  346.              obtains all the information you will need to run your Door. It
  347.              first reads the configuration file you passed on the command
  348.              line, then it reads PCBOARD.SYS, PCBOARD.DAT, and USERS (for 
  349.              PCBoard) or DOOR.SYS. There are 3 variables that must be
  350.              populated before the call to INITIALIZE. 
  351.                 PROGNAME$ = "Name of your Door"
  352.                 EXENAME$ = "FILENAM"
  353.                 VERSION$ = " v0.0"
  354.                 INITIALIZE
  355.              PROGNAME$ and VERSION$ are displayed on the Status line after
  356.              the callers name. EXENAME$ must be populated if you plan to use
  357.              the high score bulletin generator. EXENAME$ is the filename of
  358.              your program minus the .EXE extension.
  359.          ->  NOTE: EXENAME$ MUST BE NO MORE THAN 7 CHARACTERS!
  360.  
  361. SUBROUTINE: LINES (SROW%,SCOL%,LEN%,DIR$,ENDS%,MID%,EFG%,EBG%,MFG%,MBG%)
  362. PARAMETERS: SROW%    - Row the line starts at. Valid numbers are 1 - 22.
  363.                        Accepts an INTEGER number or variable.
  364.             SCOL%    - Column the line starts at. Valid numbers are 1 - 79.
  365.                        Accepts an INTEGER number or variable.
  366.             LEN%     - Length of the line. Max. of 23 for vertical, 80 horiz.
  367.                        Accepts an INTEGER number or variable.
  368.             DIR$     - "H" = horizontal. "V" = vertical. Accepts a STRING
  369.                        variable or quoted text.
  370.             ENDS%    - If you are placing the line inside a box, you can
  371.                        make the ends of the line match the box border.
  372.                        Accepts an INTEGER number or variable.
  373.                          0 = No ends. (straight line only)
  374.                          1 = Single line.
  375.                          2 = Double line.
  376.             MID%     - Type of line. 1 = Single line. 2 = Double line.
  377.                        Accepts an INTEGER number or variable.
  378.             EFG%     - Foreground color of the ends (see color table).
  379.                        Accepts an INTEGER number or variable.
  380.             EBG%     - Background color of the ends (see color table).
  381.                        Accepts an INTEGER number or variable.
  382.             MFG%     - Foreground color of the line (see color table).
  383.                        Accepts an INTEGER number or variable.
  384.             MBG%     - Background color of the line (see color table).
  385.                        Accepts an INTEGER number or variable.
  386. DESCRIPTION: Draws either a vertical or horizontal line at the specified
  387.              location. 
  388.  
  389. SUBROUTINE: MAKE.BLT (HI.SCORE&)
  390. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  391. DESCRIPTION: This routine will write a hi-score bulletin listing the top ten
  392.              scores. The parameter passed must be a long integer (&). This
  393.              routine creates a file called FILENAME.BUL. The first line of
  394.              this .BUL file indicates the path to the actual BLT file. It
  395.              initially writes FILENAME.BLT. If you wish to have a different
  396.              filename (such as BLT1) you must edit this line. The filename
  397.              for your BLT file should be 7 characters or less because
  398.              DoorFrame also writes a graphics BLT and appends a G to the
  399.              filename. (You should also explain this to your user Sysops!)
  400.  
  401.  
  402. DOORFRAME v3.7 - Users Guide - Page 6
  403.  
  404. SUBROUTINE: MAKE.BLT.CURRENT (HI.SCORE&)
  405. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  406. DESCRIPTION: Same as MAKE.BLT except it posts CURRENT scores rather than
  407.              highest scores.
  408.  
  409. SUBROUTINE: MORE
  410. PARAMETERS: None
  411. DESCRIPTION: Outputs "Press <ENTER> to continue, or <E> to end" and waits
  412.              for a response. Check the variable RESPONSE$ for an "E" and
  413.              terminate the current routine if found. For example:
  414.                 MORE
  415.                 IF UCASE$(RESPONSE$) = "E" THEN
  416.                   Etc.. Etc.
  417.  
  418. SUBROUTINE: MUSIC (TUNE$)
  419. PARAMETERS: MUSIC CODES
  420. DESCRIPTION: Outputs music to the remote system. The TUNE$ parameter
  421.              contains the same codes you would normally use in the BASIC
  422.              PLAY statement. For example:
  423.               TUNE$ = "t110 l8 ms d4 mn o3 g a b o4 c ... "
  424.               MUSIC TUNE$
  425.              Since not all communications programs can handle music, you
  426.              should ask the user if he has music capabilities. If the
  427.              user can't handle music he will simply see the music codes
  428.              come across his screen (not a pretty sight!).
  429.  
  430. SUBROUTINE: OUT.PUT (LF%)
  431. PARAMETERS: LF%, 1, 2, Etc.
  432. DESCRIPTION: Outputs the specified number of CR/LF. Parameter is an INTEGER
  433.              number or an INTEGER variable. Ex: OUT.PUT 2
  434.  
  435.  
  436. SUBROUTINE: SEND (FILENAME$, YN%, CLR%)
  437. PARAMETERS: FILENAME$ - STRING variable or quoted text of file to SEND.
  438.             YN%       - 0 = Do not use the ENTER prompt after last page.
  439.                         1 = Use the ENTER prompt after last page.
  440.             CLR%      - 0 = Home cursor, do not clear screen.
  441.                         1 = Normal clear screen.
  442. DESCRIPTION: Sends the specified filename. This can be either an ASCII file
  443.              or an ANSI file. SEND first checks for the existance of the file
  444.              and either sends the file or reports "File not Found!". This is
  445.              handy for displaying Help files, Welcome screens, etc.
  446.        NOTE: When using The Draw to create ANSI screens, save the screen using
  447.              the block mode (ALT-B) as this seems to produce better results
  448.              than using the regular save function (ALT-S).
  449.  
  450.  
  451. SUBROUTINE: SHOW.BLT (YN$)
  452. PARAMETERS: YN$, "Y", "N"
  453. DESCRIPTION: Call this routine if your Door features a Hi-score bulletin. Make
  454.              sure you have called MAKE.BLT first! Best place to call this
  455.              is just before you call EXIT.DOOR. For example:
  456.               MAKE.BLT HI.SCORE&
  457.               SHOW.BLT "Y"
  458.               EXIT.DOOR "Y"
  459.              SHOW.BLT "Y" will ask if they want to see the Bulletin.
  460.              SHOW.BLT "N" displays the bulletin without asking.
  461.  
  462.  
  463. DOORFRAME v3.7 - Users Guide - Page 7
  464.  
  465.  
  466.                              C O L O R  T A B L E
  467.                             ======================
  468.  
  469. COLOR # - NAME       INTENSITY       FOREGROUND (FG%)     BACKGROUND (BG%)
  470. ---------------------------------------------------------------------
  471.  0 - BLACK              Low               X                   X
  472.  1 - BLUE                "                X                   X
  473.  2 - GREEN               "                X                   X
  474.  3 - CYAN                "                X                   X
  475.  4 - RED                 "                X                   X
  476.  5 - MAGENTA             "                X                   X
  477.  6 - YELLOW              "                X                   X
  478.  7 - WHITE               "                X                   X
  479.  8 - GRAY               High              X
  480.  9 - LBLUE               "                X
  481. 10 - LGREEN              "                X
  482. 11 - LCYAN               "                X
  483. 12 - LRED                "                X
  484. 13 - LMAGENTA            "                X
  485. 14 - LYELLOW             "                X
  486. 15 - LWHITE              "                X
  487.  
  488. The COLORs are defined as CONSTANT in the DFRAME.INC file so you may use
  489. either the actual color number, it's name or an INTEGER variable of your own
  490. choosing when CALLing the DIS.PLAY subroutine.
  491.  
  492.  
  493. DOORFRAME v3.7 - Users Guide - Page 8
  494.  
  495.  
  496.                               CONFIGURATION FILE
  497.                               ==================
  498.  
  499. The format of the configuration file used by Doors created with DoorFrame is:
  500.  
  501. C:\PCB\PCBOARD.SYS              <- For PCBoard systems using PCBOARD.SYS only
  502. C|\PCB\USERS.SYS                <- For PCBoard systems using USERS.SYS
  503.                                    DoorFrame also recognizes the PCBoard
  504.                                    %PCBDRIVE% and %PCBDIR% environment var.
  505. C:\BBS\CALLINFO.BBS             <- For Wildcat! systems (prior to v3.7)
  506. C:\BBS\CHAIN.TXT                <- For WWIV systems
  507. C:\BBS\GTUSER.BBS               <- For GT Power systems
  508. C:\BBS\USERINFO.DAT             <- For Wildcat! 3.x+ systems.
  509. C:\BBS\DOOR.SYS                 <- For systems that support DOOR.SYS
  510. C:\BBS\DORINFOx.DEF             <- For QBBS/RBBS/RA. Replace x with Node #.
  511. C:\BBS\SFDOORS.DAT              <- For Spitfire systems.
  512. C:\BBS\TRIBBS.SYS               <- For TriBBS systems.
  513. MicroNet                        <- BBS name
  514. Ted                             <- Sysop's first name
  515. Freeman                         <- Sysop's last name
  516.   .                             <- The Configuration file is left open as #1
  517.   .                                so you may add whatever is necessary.
  518.  
  519. NOTE: DoorFrame supports COM 1-4 on the standard IRQ's - COM1/COM3 = IRQ4 and
  520.       COM2/COM4 = IRQ3. If you wish to use a non-standard IRQ, add the IRQ
  521.       number after the configuration filename. Let's assume your Door is
  522.       called FOOBAR and you want to use COM1 and IRQ5. The command line
  523.       passed to your Door would be:
  524.         FOOBAR FOOBAR.CFG /5  
  525.         or  FOOBAR FOOBAR.CFG /%IRQ%  for the environment variable.
  526.       The /5 tells DoorFrame to use IRQ5 rather than the standard IRQ4 that
  527.       is normally used with COM1. No /x parameter is needed for the standard
  528.       IRQ's.
  529.  
  530. NOTE: There are 2 additional lines necessary when using GTUSER.BBS. Since
  531.       this file does not provide the ComPort% and NodeNum% variables, advise
  532.       your Door users to add them to this .CFG file on lines 5 and 6
  533.       respectively. Both variables will default to 1.
  534.  
  535.  
  536. DOORFRAME v3.7 - Users Guide - Page 9
  537.  
  538.                   VARIABLES AVAILABLE WHEN USING PCBOARD.SYS
  539.                   ==========================================
  540.  
  541.         ALLOWEDBYTES&             Allowed D/L bytes from the PWRD file.
  542.                                   This number has already been multipled
  543.                                   by 1024 so it will be in actual bytes
  544.                                   rather than Kilobytes allowed.
  545.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  546.       * BAUDOPEN$                 Port opening BPS
  547.       * BBSSYS$                   Name of the BBS
  548.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  549.       * CALLERSLOC$               Location of CALLERSx log
  550.         CHATSTATUS$               Chat mode status. "U" or "A"
  551.       * CITY$                     Callers city and state
  552.       * CNAMESLOC$                Location of CNAMES
  553.       * COMPORT%                  COM port number
  554.         CONFREG$                  Conferences registered in
  555.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  556.         DOWNLOADS&                Number of downloads made
  557.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  558.         EXENAME$                  Name of .EXE (Programmer supplied)
  559.         EXPERT$                   Expert mode - "Y" or "N"
  560.         EXPIRE$                   Callers expiration date
  561.       * FIRST$                    Callers first name
  562.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  563.                                   Determines if the caller is ANSI compatible
  564.                                   If your door requires the use of cursor
  565.                                   positioning and GRAPHICS% = 0 then you
  566.                                   should kick him back out of the door.
  567.       * HPHONE$                   Callers home phone number
  568.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  569.         LEVEL&                    Callers security level
  570.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  571.       * LOGONHRS$                 Time caller logged on in HH:MM format
  572.       * LOGONMINS%                Time caller logged on in minutes
  573.         MODE%                     0 = Non-color, -1 = color is on. Default
  574.                                   is the BBS setting. You may force color
  575.                                   by setting this to -1.
  576.       * NAME$                     Callers full name
  577.       * NETWORK%                  1 = BBS is networked, 0 = no network
  578.       * NODENUM%                  Node number
  579.         OWNER$                    Name DoorFrame is registered to (if any).
  580.         PASSWORD$                 Password of caller
  581.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  582.         PAGELEN%                  Callers page length
  583.       * PCBDAT$                   Location of PCBOARD.DAT
  584.       * PCBOARD%                  1 = PCBoard, 0 = non-PCBoard
  585.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  586.         PROGNAME$                 Name of DOOR (Programmer supplied)
  587.         PROTOCOL$                 Caller's default protocol (Z, X, etc.)
  588.         RESPONSE$                 Returned after a CALL to IN.PUT
  589.         SERIAL$                   Your DoorFrame serial #. String variable.
  590.       * SYSLOC$                   Location of system file. This contains the
  591.                                   path/filename of line 1 in the .CFG file.
  592.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  593.       * SYSOPFIRST$               Sysops first name
  594.  
  595.  
  596. DOORFRAME v3.7 - Users Guide - Page 10
  597.  
  598.  
  599.         SYSOPFLAG$                " ", "N"=Sysop Next, "X"=Exit to DOS
  600.       * SYSOPLAST$                Sysops last name
  601.       * SYSOPNAME$                Sysops first and last names
  602.         TIMEADJUST%               Use to adjust the callers remaining time
  603.                                   online. This variable adjusts the ELAPSED
  604.                                   time so if you wish to decrease his time,
  605.                                   give this a positive value.
  606.       * TIMEALWD%                 Minutes caller is allowed
  607.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  608.                                   calculates this so changing it has no effect
  609.       * TIMENOW%                  Current time in minutes (0 - 1440)
  610.       * TIMESON%                  Number of times on system
  611.         TIMEOUT%                  Programmer supplied keyboard timeout. 
  612.                                   Defaults to 300 (5 mins) if not specified. 
  613.                                   Has a minimum of 60 seconds. Maximum is 
  614.                                   32,767 since it's an integer.
  615.       * TIMEUSED%                 Time used so far today in minutes
  616.         UPLOADS&                  Number of uploads made
  617.       * USERCOMMENT$              User maintained comment
  618.       * USERSLOC$                 Location of USERS file
  619.       * USERNUM%                  Record number of caller
  620.         VERSION$                  DOOR version # (Programmer supplied)
  621.       * WPHONE$                   Callers work phone number
  622.  
  623. NOTES: Variables marked with '*' are provided for information only.
  624.  
  625.  
  626. DOORFRAME v3.7 - Users Guide - Page 11
  627.  
  628.  
  629.                    VARIABLES AVAILABLE WHEN USING USERS.SYS
  630.                    ========================================
  631.  
  632.         When using USERS.SYS, all variables contained in PCBOARD.SYS may
  633.         be used plus the following additional variables.
  634.  
  635.         DAILYDNLDBYTES&          Bytes downloaded so far today.
  636.         DELETEFLAG%              1 = delete this record, 0 = keep
  637.         EXPIREDLEVEL&            Expired Security level
  638.         LASTCONF%                Conference number last in.
  639.         LASTTIMEON$              Last time caller was on
  640.         MSGS.LEFT%               Number of messages posted
  641.         MSGS.READ%               Number of messages read
  642.         PCB.VERSION%             PCBoard version number (i.e. 1450)
  643.         TOTDNLDBYTES&            Total number of BYTES downloaded
  644.         TOTUPLDBYTES&            Total number of BYTES uploaded
  645.  
  646. NOTES: These variables are all passed back to PCBoard.
  647.  
  648.  
  649. DOORFRAME v3.7 - Users Guide - Page 12
  650.  
  651.                     VARIABLES AVAILABLE WHEN USING DOOR.SYS
  652.                     =======================================
  653.  
  654.     !   ALIAS$                    Callers alias/handle
  655.     ! * ANSISUPPORT$              Caller supports ANSI but in NG mode
  656.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  657.       * BAUDOPEN$                 Port opening BPS
  658.     ! * BBSCOLOR%                 BBS default color code (1-15)
  659.       * BBSSYS$                   Name of the BBS
  660.         BIRTHDATE$                Callers date of birth
  661.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  662.       * CITY$                     Callers city and state
  663.       * COMPORT%                  COM port number (1 - 4).
  664.         CONFREG$                  Conferences registered in
  665.         DAILY.BYTES.ALWD&         Daily download max. K limit
  666.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  667.     !   DOORS.OPENED%             Number of Doors caller has opened
  668.         DOWNLOADS&                Number of downloads made
  669.     ! * ECC%                      Error corrected connect.  1=YES, 0=NO
  670.         EXENAME$                  Name of .EXE (Programmer supplied)
  671.         EXFROM%                   Conference exited to Door from.
  672.         EXPERT$                   Expert mode - "Y" or "N"
  673.         EXPIRE$                   Callers expiration date
  674.     ! * EVENT$                    Event time (hh:mm)
  675.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  676.                                   Determines if the caller is ANSI compatible
  677.                                   If your door requires the use of cursor
  678.                                   positioning and GRAPHICS% = 0 then you
  679.                                   should kick him back out of the door.
  680.       * HPHONE$                   Callers home phone number
  681.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  682.     !   LASTSCAN$                 Date of last directory/new files scan.
  683.         LEVEL&                    Callers security level
  684.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  685.       * LOGONHRS$                 Time caller logged on in HH:MM format
  686.       * LOGONMINS%                Time caller logged on in minutes
  687.     !   MAX.FILES%                Maximum daily files available
  688.     !   MINSCREDIT%               Time credits in minutes
  689.         MODE%                     0 = Non-color, -1 = color is on. Default
  690.                                   is the BBS setting. You may force color
  691.                                   by setting this to -1.
  692.     !   MSGS.LEFT%                Total messages left
  693.       * NAME$                     Callers full name
  694.     ! * NETWORK%                  1 = BBS is networked, 0 = no network
  695.       * NODENUM%                  Node number
  696.         DLTODAY&                  Files downloaded so far today
  697.         OWNER$                    Name DoorFrame is registered to (if any).
  698.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  699.         PAGELEN%                  Callers page length
  700.       * PARITY%                   Parity (word length?) (7 or 8)
  701.         PASSWORD$                 Password of caller
  702.       * PATHGEN$                  Path to the GEN directory
  703.       * PATHMAIN$                 Path to the MAIN directory
  704.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  705.         PROGNAME$                 Name of DOOR (Programmer supplied)
  706.         PROTOCOL$                 Callers default protocol (Z, X, etc)
  707.         RESPONSE$                 Returned after a CALL to IN.PUT
  708.  
  709.  
  710. DOORFRAME v3.7 - Users Guide - Page 13
  711.  
  712.  
  713.         SECREM$                   Number of seconds remaining this call.
  714.         SERIAL$                   Your DoorFrame serial #. String variable.
  715.       * SYSLOC$                   Location of system file. This contains the
  716.                                   path/filename of line 1 in the .CFG file.
  717.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  718.       * SYSOPFIRST$               Sysops first name
  719.       * SYSOPLAST$                Sysops last name
  720.       * SYSOPNAME$                Sysops first and last names
  721.         TIMEADJUST%               Use to adjust the callers remaining time
  722.                                   online. This variable adjusts the ELAPSED
  723.                                   time so if you wish to decrease his time,
  724.                                   give this a positive value.
  725.     ! * TIMELASTCALL$             Time of last call (hh:mm)
  726.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  727.                                   calculates this so changing it has no effect
  728.       * TIMENOW%                  Current time in minutes (0 - 1440)
  729.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  730.                                   not specified. Has a minimum of one min.
  731.                                   No limit on maximum. 
  732.       * TIMESON%                  Number of times on system
  733.       * TIMEUSED%                 Time used so far today in minutes
  734.         TOTAL.BYTES.TODAY&        Daily download K total
  735.     !   TOTAL.KB.DL&              Total K bytes downloaded
  736.     !   TOTAL.KB.UL&              Total K bytes uploaded
  737.         UPLOADS&                  Number of uploads made
  738.     ! * USERCOMMENT$              User maintained comment
  739.       * USERNUM%                  Record number of caller
  740.         VERSION$                  DOOR version # (Programmer supplied)
  741.       * WPHONE$                   Callers work phone number
  742. NOTES: Variables marked with '*' are provided for information only.
  743.        Variables marked with '!' are available only in the 52 line version.
  744.  
  745.  
  746. DOORFRAME v3.7 - Users Guide - Page 14
  747.  
  748.  
  749.                   VARIABLES AVAILABLE WHEN USING USERINFO.DAT
  750.                   ===========================================
  751.  
  752.       * ACTIVE.MENU%              0=Main, 1=Msg, 2=File, 3=Sysop
  753.         ALIAS$                    Callers alias/handle
  754.       * ANSISUPPORT$              'Y' or 'N' for ANSI enabled.
  755.         BANKED.TIME%              Banked time. (DLT - MaxLogOn)
  756.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  757.       * COMMAND.LINE$             Started with a CommandLine switch. Y or N.
  758.       * DATABITS$                 Databits, 7 or 8.
  759.       * DOOR.LOGOFF$              Y or N. Set to Y if caller logged off from
  760.                                   inside the door.
  761.         DOOR.DL&                  Number of files DL'ed in the door.
  762.         DOOR.KB&                  Downloads in K, add to daily and total bytes
  763.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  764.         LASTSCAN$                 Time/date of last new files scan
  765.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  766.       * NAME$                     Callers full name
  767.         SEC.LEVEL.NAME$           Security level name.
  768. NOTES: Variables marked with '*' are provided for information only.
  769.        All other variables are taken from the DOOR.SYS file.
  770.  
  771.  
  772.                   VARIABLES AVAILABLE WHEN USING DORINFOx.DEF
  773.                   ===========================================
  774.  
  775.       * BAUDRATE$                 Baud rate and parity of caller.
  776.                                   Ex. 2400 BAUD,N,8,1
  777.                                   NOTE: RBBS adds baud rate of BBS.
  778.       * BBSSYS$                   Name of the BBS
  779.       * CITY$                     Callers city and state
  780.       * COMPORT%                  COM port number (1 - 4).
  781.         DISPLAY%                  Defaults to -1 (ON).
  782.       * DORINFO13TH$              13th line available only on RBBS systems.
  783.         EXENAME$                  Name of .EXE (Programmer supplied)
  784.       * FIRST$                    Callers first name
  785.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  786.                                   Determines if the caller is ANSI compatible
  787.                                   If your door requires the use of cursor
  788.                                   positioning and GRAPHICS% = 0 then you
  789.                                   should kick him back out of the door.
  790.                                   Use DETECT.ANSI to determine this.
  791.       * LAST$                     Callers last name
  792.       * LASTON$                   Default 01-01-80 (not provided in DORINFO)
  793.         LEVEL&                    Callers security level
  794.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  795.         MODE%                     0 = Non-color, -1 = color is on. Default
  796.                                   is the BBS setting. You may force color
  797.                                   by setting this to -1.
  798.       * NAME$                     Callers full name
  799.         NETWORK$                  Network type. DoorFrame reads/writes as is.
  800.       * NODENUM%                  Number of this Node.
  801.         OWNER$                    Name DoorFrame is registered to (if any).
  802.         PROGNAME$                 Name of DOOR (Programmer supplied)
  803.         RESPONSE$                 Returned after a CALL to IN.PUT
  804.         SERIAL$                   Your DoorFrame serial #. String variable.
  805.  
  806.  
  807. DOORFRAME v3.7 - Users Guide - Page 15
  808.  
  809.       * SYSLOC$                   Location of system file. This contains the
  810.                                   path/filename of line 1 in the .CFG file.
  811.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  812.       * SYSOPFIRST$               Sysops first name
  813.       * SYSOPLAST$                Sysops last name
  814.       * SYSOPNAME$                Sysops first and last names
  815.         TIMEADJUST%               Use to adjust the callers remaining time
  816.                                   online. This variable adjusts the ELAPSED
  817.                                   time so if you wish to decrease his time,
  818.                                   give this a positive value.
  819.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  820.                                   calculates this so changing it has no effect
  821.       * TIMENOW%                  Current time in minutes (0 - 1440)
  822.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  823.                                   not specified. Has a minimum of one min.
  824.                                   No limit on maximum. 
  825.       * TIMESON%                  Defaults to 1 (Not provided in DORINFO)
  826.       * TIMEUSED%                 Time used so far today in minutes
  827.  
  828. NOTES: Variables marked with '*' are provided for information only.
  829.  
  830.                   VARIABLES AVAILABLE WHEN USING CALLINFO.BBS
  831.                   ===========================================
  832.  
  833.       * ALREADYCONNECTED$         "TRUE" or "FALSE"
  834.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  835.       * BBSSYS$                   Name of the BBS
  836.       * CITY$                     Callers city and state
  837.       * COMPORT%                  COM port number (1 - 4).
  838.         CONFREG$                  Conferences registered in (ABCD etc.)
  839.       * CONSOLE$                  "LOCAL" or "REMOTE"
  840.         DAILY.BYTES.ALWD&         Daily download max. K limit
  841.       * DATABITS$                 7 or 8
  842.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  843.       * DOORNUMBER$               BBS number of this door?
  844.         EXENAME$                  Name of .EXE (Programmer supplied)
  845.       * ENTERDOOR$                Time caller entered door in HH:MM format.
  846.       * FIRST$                    Callers first name
  847.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  848.                                   Determines if the caller is ANSI compatible
  849.                                   If your door requires the use of cursor
  850.                                   positioning and GRAPHICS% = 0 then you
  851.                                   should kick him back out of the door.
  852.                                   Use DETECT.ANSI to determine this.
  853.       * LAST$                     Callers last name
  854.         LASTMSG$                  Last message read
  855.       * LASTONDATE$               Date and time of last call
  856.         LEVEL&                    Callers security level
  857.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  858.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  859.       * LOGONHRS$                 Time caller logged on in HH:MM format
  860.         MODE%                     0 = Non-color, -1 = color is on. Default
  861.                                   is the BBS setting. You may force color
  862.                                   by setting this to -1.
  863.       * MNP$                      "MNP/ARQ Connection" or "Normal Connection"
  864.       * NAME$                     Callers full name
  865.         DLTODAY&                  Files downloaded so far today
  866.  
  867.  
  868. DOORFRAME v3.7 - Users Guide - Page 16
  869.  
  870.         OWNER$                    Name DoorFrame is registered to (if any).
  871.         PASSWORD$                 Password of caller
  872.         PROGNAME$                 Name of DOOR (Programmer supplied)
  873.         RESPONSE$                 Returned after a CALL to IN.PUT
  874.         SERIAL$                   Your DoorFrame serial #. String variable.
  875.       * SYSLOC$                   Location of system file. This contains the
  876.                                   path/filename of line 1 in the .CFG file.
  877.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  878.       * SYSOPFIRST$               Sysops first name
  879.       * SYSOPLAST$                Sysops last name
  880.       * SYSOPNAME$                Sysops first and last names
  881.         TIMEADJUST%               Use to adjust the callers remaining time
  882.                                   online. This variable adjusts the ELAPSED
  883.                                   time so if you wish to decrease his time,
  884.                                   give this a positive value.
  885.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  886.                                   calculates this so changing it has no effect
  887.       * TIMENOW%                  Current time in minutes (0 - 1440)
  888.       * TIMEOFF$                  Time caller exited from the door.
  889.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  890.                                   not specified. Has a minimum of one min.
  891.                                   No limit on maximum. 
  892.       * TIMEUSED%                 Time used so far today in minutes
  893.       * USERNUM%                  Record number of caller
  894.  
  895. NOTES: Variables marked with '*' are provided for information only.
  896.  
  897.  
  898. DOORFRAME v3.7 - Users Guide - Page 17
  899.  
  900.  
  901.                   VARIABLES AVAILABLE WHEN USING SFDOORS.DAT
  902.                   ==========================================
  903.  
  904.         ANSION$                   "TRUE" or "FALSE"
  905.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  906.       * BBSDIR$                   Spitfire's home directory
  907.       * BBSSYS$                   Name of the BBS
  908.       * CITY$                     Callers city and state
  909.       * COMPORT%                  COM port number (1 - 4).
  910.         DAILY.BYTES.ALLOWED&      Maximum download BYTES per day
  911.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  912.         DLPERDAY&                 Number of downloads allowed per day
  913.         DLTODAY&                  Number of downloads made today
  914.         DOWNLOADS&                Number of downloads made
  915.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  916.         EXENAME$                  Name of .EXE (Programmer supplied)
  917.         EXTRATIME&                Number of seconds gained since logon
  918.       * FIRST$                    Callers first name
  919.       * FRONTEND$                 "TRUE" or "FALSE" if booted from a
  920.                                   front end program.
  921.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  922.                                   Determines if the caller is ANSI compatible
  923.                                   If your door requires the use of cursor
  924.                                   positioning and GRAPHICS% = 0 then you
  925.                                   should kick him back out of the door.
  926.                                   Use DETECT.ANSI to determine this.
  927.       * HPHONE$                   Callers home phone number
  928.       * LAST$                     Callers last name
  929.         LASTMCONF$                Last message conference
  930.         LASTFAREA$                Last file area
  931.         LEVEL&                    Callers security level
  932.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  933.       * LOGONHRS$                 Time caller logged on in HH:MM format
  934.       * LOGONSECS&                Number of seconds since midnight
  935.                                   when caller logged on to the BBS.
  936.       * MAXBAUD$                  Maximum baud of the system
  937.         MODE%                     0 = Non-color, -1 = color is on. Default
  938.                                   is the BBS setting. You may force color
  939.                                   by setting this to -1.
  940.       * NAME$                     Callers full name
  941.       * NODENUM%                  Number of this Node.
  942.       * NODTELOCK$                "TRUE" or "FALSE" if configured for
  943.                                   software data flow control.
  944.         OWNER$                    Name DoorFrame is registered to (if any).
  945.         PASSWORD$                 Password of caller
  946.         PROGNAME$                 Name of DOOR (Programmer supplied)
  947.         RESPONSE$                 Returned after a CALL to IN.PUT
  948.       * SECONDS&                  Number of seconds since midnight
  949.                                   when caller entered the door.
  950.         SERIAL$                   Your DoorFrame serial #. String variable.
  951.       * SYSLOC$                   Location of system file. This contains the
  952.                                   path/filename of line 1 in the .CFG file.
  953.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  954.  
  955. NOTES: Variables marked with '*' are provided for information only.
  956.  
  957.  
  958. DOORFRAME v3.7 - Users Guide - Page 18
  959.  
  960.  
  961.       * SYSOPFIRST$               Sysops first name
  962.       * SYSOPLAST$                Sysops last name
  963.       * SYSOPNAME$                Sysops first and last names
  964.         SYSOPNEXT$                "TRUE" or "FALSE"
  965.         TIMEADJUST%               Use to adjust the callers remaining time
  966.                                   online. This variable adjusts the ELAPSED
  967.                                   time so if you wish to decrease his time,
  968.                                   give this a positive value.
  969.       * TIMEALWD%                 Minutes caller is allowed
  970.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  971.                                   calculates this so changing it has no effect
  972.       * TIMENOW%                  Current time in minutes (0 - 1440)
  973.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  974.                                   not specified. Has a minimum of one min.
  975.                                   No limit on maximum. 
  976.       * TIMEUSED%                 Time used so far today in minutes
  977.  
  978.         TOTAL.BYTES.TODAY&        BYTES downloaded so far today
  979.         TOTAL.KB.DL&              Total K bytes downloaded
  980.         TOTAL.KB.UL&              Total K bytes uploaded
  981.         UPLOADS&                  Number of uploads made
  982.       * USERNUM%                  Record number of caller
  983.  
  984. NOTES: Variables marked with '*' are provided for information only.
  985.  
  986. DOORFRAME v3.7 - Users Guide - Page 19
  987.  
  988.                    VARIABLES AVAILABLE WHEN USING CHAIN.TXT
  989.                    ========================================
  990.  
  991.         AGE$                      Caller's age
  992.         ALIAS$                    Callers alias/handle
  993.       * BBSSYS$                   Name of the BBS
  994.       * CALLSIGN$                 HAM radio call sign
  995.         COLUMNS$                  Caller's screen width
  996.       * COMPORT%                  COM port number (1 - 4).
  997.         COSYSOP%                  1 if Caller is co-Sysop, 0 if not
  998.       * DATADIR$                  System DATA directory
  999.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  1000.         DOWNLOADS&                Number of downloads made
  1001.         EXENAME$                  Name of .EXE (Programmer supplied)
  1002.       * FIRST$                    Callers first name
  1003.       * GFILESDIR$                System GFILES directory
  1004.         GOLD$                     Caller's gold (?)
  1005.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  1006.                                   Determines if the caller is ANSI compatible
  1007.                                   Use DETECT.ANSI to determine this.
  1008.       * LAST$                     Callers last name
  1009.       * LASTON$                   Date caller last logged on (MM/DD/YY)
  1010.         LEVEL&                    Callers security level
  1011.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  1012.       * LOG$                      System LOG of the day
  1013.       * LOGONSECS&                Number of seconds since midnight
  1014.                                   when caller logged on to the BBS.
  1015.         MODE%                     0 = Non-color, -1 = color is on. Line 14
  1016.                                   of CHAIN.TXT determines this setting.
  1017.       * NAME$                     Callers full name
  1018.       * NODENUM%                  Defaults to 1 (not provided in CHAIN.TXT)
  1019.         OWNER$                    Name DoorFrame is registered to (if any).
  1020.         PAGELEN%                  Callers page length
  1021.         PARITY$                   "8N1" etc.
  1022.         PROGNAME$                 Name of DOOR (Programmer supplied)
  1023.         RESPONSE$                 Returned after a CALL to IN.PUT
  1024.         SERIAL$                   Your DoorFrame serial #. String variable.
  1025.         SEX$                      Callers sex
  1026.       * SYSLOC$                   Location of system file. This contains the
  1027.                                   path/filename of line 1 in the .CFG file.
  1028.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  1029.       * SYSOPFIRST$               Sysops first name
  1030.       * SYSOPLAST$                Sysops last name
  1031.       * SYSOPNAME$                Sysops first and last names
  1032.         TIMEADJUST%               Use to adjust the callers remaining time
  1033.                                   online. This variable adjusts the ELAPSED
  1034.                                   time so if you wish to decrease his time,
  1035.                                   give this a positive value.
  1036.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  1037.                                   calculates this so changing it has no effect
  1038.       * TIMENOW%                  Current time in minutes (0 - 1440)
  1039.         TIMEOUT%                  Programmer supplied. Default = 5 minutes.
  1040.       * TIMEUSED%                 Time used so far today in minutes
  1041.         TOTAL.KB.DL&              Total K bytes downloaded
  1042.         TOTAL.KB.UL&              Total K bytes uploaded
  1043.         UPLOADS&                  Number of uploads made
  1044.       * USERNUM%                  Record number of caller
  1045. NOTES: Variables marked with '*' are provided for information only.
  1046.  
  1047. DOORFRAME v3.7 - Users Guide - Page 20
  1048.  
  1049.                                 MISCELLANEOUS NOTES
  1050.                                 ===================
  1051.  
  1052. Check DFRAME.INC for an explanation of variables not listed above.
  1053.  
  1054. DoorFrame requires DOS 3.x and up since all files are opened in SHARED mode.
  1055.  
  1056. When using PCBOARD.SYS, DoorFrame also accesses the USERS file.
  1057.  
  1058. When using USERS.SYS, DoorFrame also accesses PCBOARD.SYS, PCBOARD.DAT and the 
  1059. USERS file.
  1060.  
  1061. The DOOR.SYS used by DoorFrame is the standard 52 line GAP (tm) file.
  1062.  
  1063. The CALLINFO.BBS used by DoorFrame currently contains 36 lines.
  1064.  
  1065. Trapping errors
  1066. ---------------
  1067.  If you wish to utilize the internal error trapping, insert the following
  1068.  line wherever you wish the trapping to begin. I would suggest putting it
  1069.  right after you call INITIALIZE.
  1070.    ON ERROR GOTO ERR.ROUTINE
  1071.  
  1072.  Then at the very end of your program insert the following:
  1073.    ERR.ROUTINE:
  1074.    ERRORS ERR, ERL
  1075.    END
  1076.  
  1077.  If ANY Basic error is encountered, it will branch to ERR.ROUTINE and call
  1078.  the ERRORS subroutine. The error will be printed to the screen and written
  1079.  to DFRAME.ERR. Your Door will then exit back to the BBS.
  1080.  
  1081. The first few lines of your Door should be:
  1082.    ' $INCLUDE: 'DFRAME.INC'
  1083.    PROGNAME$ = "Name of the Door"
  1084.    VERSION$ = " v1.0"
  1085.    EXENAME$ = "FILENAM"           <- NOTE: Max of 7 letters!
  1086.    TIMEOUT% = 240                 <- Numbers of seconds to wait for keyboard
  1087.                                      activity. 240 will wait for 4 minutes
  1088.                                      then send a Keyboard Timeout msg. and
  1089.                                      exit back to the BBS. Defaults to 300.
  1090.    OWNER$ = "Your Name"           <- For registered DoorFrame users only.
  1091.    SERIAL$ = "99999"              <- DoorFrame will display an EVALUATION
  1092.                                      COPY message until registered.
  1093.    INITIALIZE
  1094.    .
  1095.    .
  1096.    Your code.......
  1097.    .
  1098.    .
  1099.    MAKE.BLT HI.SCORE&            <- If you want one generated.
  1100.    SHOW.BLT                      <- If you want to show it before door closes.
  1101.    EXIT.DOOR "Y"
  1102.  
  1103. The configuration filename passed on the command line is OPENed as #1. This
  1104. file is left open so you may read additional lines from the .CNF file. 
  1105. Although it is not absolutely necessary, you should CLOSE #1 somewhere near
  1106. the start of your program.
  1107.  
  1108.  
  1109. DOORFRAME v3.7 - Users Guide - Page 21
  1110.  
  1111. Using SysopKeys%
  1112. ----------------
  1113. By setting SysopKeys% = 1 (any point after calling INITIALIZE), you can
  1114. utilize the arrow keys for remote input. This could be used for moving
  1115. highlight bars etc. (see the DFDEMO for an example).  Using the arrow keys
  1116. from remote can present difficulties because the terminal program the caller
  1117. is using may have redefined the arrow keys. Qmodem is a good example. Normally 
  1118. the up arrow in Qmodem activates the scroll back buffer. However, if you switch
  1119. Qmodem into DoorWay mode (ALT =), the arrow keys can be used. I do not know
  1120. if this is possible with other terminals (feedback anyone?).  If you do
  1121. utilize the arrow keys, you would be wise to provide an alternative method
  1122. of input for those callers who cannot use their arrow keys.
  1123.  
  1124. In addition, set Sysopkeys% = 1 only when arrow input is required then
  1125. immediately set SysopKeys% = 0 since capital H, K, M, and P are also
  1126. interpreted as arrow keys when SysopKeys% = 1.
  1127.  
  1128. Turning off the Status lines.
  1129. -----------------------------
  1130. If for some reason you do not want the 2 Status lines at the bottom of the
  1131. screen to show, you may blank those out at any time with the following.
  1132.  
  1133.  No.Status% = 1
  1134.  ClrScrn Black
  1135.  
  1136. To turn the Status lines back on just set No.Status% = 0.
  1137.  
  1138. Returning control to programmer upon carrier loss
  1139. -------------------------------------------------
  1140. There may be instances where the programmer needs to do some clean-up when
  1141. a loss of carrier occurs before returning to the BBS. There are two variables
  1142. that allow you to do this. After calling INITIALIZE, set Auto.Recycle% = 0.
  1143. If carrier is lost, the variable NoCarrier% is set equal to 1. One way to 
  1144. handle this is to check NoCarrier% after each In.Put, Enter, or More 
  1145. statement. If NoCarrier% = 1, your door will NOT stop for user input. For
  1146. example:
  1147.  
  1148.    In.Put 0, 0, 11, 0, 1, "Prompt > ", 10, 1, 1
  1149.    IF NoCarrier% = 1 THEN GOTO HandleIt
  1150.  
  1151. If the door was sitting at the In.Put prompt when carrier loss occurred, it
  1152. would immediately come out of it and process the next statement. You must be
  1153. VERY CAREFUL when using this option. Make sure you TEST IT THOROUGHLY!!!
  1154.  
  1155.